package Top_Interview_Questions.String;

/**
 * @Author: 吕庆龙
 * @Date: 2020/3/14 20:53
 * <p>
 * 功能描述:
 */
public class _0014 {

    public static void main(String[] args) {
        _0014 test = new _0014();
        String[] strs = {"flower","flow","flight"};
        String commonPrefix = test.longestCommonPrefix1(strs);
        System.out.println(commonPrefix);
    }

    /**
     * 第二种水平扫描,扫描的次数减少了
     */
    public String longestCommonPrefix1(String[] strs) {
        if (strs == null || strs.length == 0) return "";
        for (int i = 0; i < strs[0].length() ; i++){
            char c = strs[0].charAt(i);
            for (int j = 1; j < strs.length; j ++) {
                if (i == strs[j].length() || strs[j].charAt(i) != c)
                    return strs[0].substring(0, i);
            }
        }
        return strs[0];
    }



    /**
     * 水平扫描
     */
    public String longestCommonPrefix(String[] strs) {
        if (strs.length == 0) return "";
        String prefix = strs[0];
        for (int i = 1; i < strs.length; i++)
            while (strs[i].indexOf(prefix) != 0) {
                prefix = prefix.substring(0, prefix.length() - 1);
                if (prefix.isEmpty()) return "";
            }
        return prefix;
    }



}
